/*
* 1代表成功。0为失败，-1为需要登录，-2为权限不够
* */
import mongoose from 'mongoose'
import {convert} from '../utils/common'

const koaBody = require('koa-body')

const User = mongoose.model('User')

// 是否登录
export const login = convert(async (ctx, next) => {
  let _id = ctx.session.userId
  if (!_id) {
    ctx.body = {
      result: -1,
      mes: '你还没有登录！'
    }
  } else {
    ctx.userInfo = await User.findOne({_id}) || {}
    if (ctx.userInfo.password !== ctx.session.password) {
      ctx.session = null
      ctx.body = {
        result: -1,
        mes: '你还没有登录！'
      }
    } else {
      await next()
    }
  }
})

// 是否为管理员（需先验证登陆）
export const admin = convert(async (ctx, next) => {
  if (ctx.userInfo && ctx.userInfo.role === 'admin') {
    await next()
  } else {
    ctx.body = {
      result: -2,
      mes: '你没有权限'
    }
  }
})

// 文件上传
export const upload = convert(koaBody({
  multipart: true
}))
